﻿/*
 * Created by SharpDevelop.
 * User: LBALERI
 * Date: 13/02/2013
 * Time: 09:49 a.m.
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.Drawing;
using System.Windows.Forms;

namespace CapturaImagen
{
    /// <summary>
    /// Description of ModificarMuestra.
    /// </summary>
    public partial class ModificarMuestra : Form
    {
        public static String nombreMuestra;

        public ModificarMuestra()
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();

            //
            // TODO: Add constructor code after the InitializeComponent() call.
            //
        }
        void ModificarMuestraLoad(object sender, System.EventArgs e)
        {
           Muestra muestra = new Muestra();
            muestra = DAOAtributos.obtenerMuestraAtributos(nombreMuestra);

            if (null != muestra)
            {
                for (int i = 0; i <= 100; i = i + 10)
                {
                    this.cmbDanio.Items.Add(i);
                    this.cmbFueraTipo.Items.Add(i);
                    this.cmbPOP.Items.Add(i);
                }

                this.txtMuestra.Text = muestra.Nombre;
                this.txtFecha.Text = muestra.FechaIngreso;
                this.txtLote.Text = muestra.BatchLote;
                this.rtbObservaciones.Text = muestra.Observacion;
                this.cmbFueraTipo.Text = muestra.FueraDeTipo.ToString();
                this.cmbDanio.Text = muestra.DanioBiologico.ToString();
                this.cmbPOP.Text = muestra.GranoPOP.ToString();

                if (muestra.Clase.Equals("Fundadoras"))
                {
                    this.rdFundadora.Select();
                }
                else if (muestra.Clase.Equals("Producción"))
                {
                    this.rdProduccion.Select();
                }
                else if (muestra.Clase.Equals("Regulado"))
                {
                    this.rdRegulado.Select();
                }
                else if (muestra.Clase.Equals("Sorgo"))
                {
                    this.rdSorgo.Select();
                }
                else if (muestra.Clase.Equals("Piloto"))
                {
                    this.rdPiloto.Select();
                }

                if (muestra.ColorGrano.Equals("Blanco"))
                {
                    this.rdGBlan.Select();
                }
                else if (muestra.ColorGrano.Equals("Amarillo"))
                {
                    this.rdAma.Select();
                }
                else if (muestra.ColorGrano.Equals("Colorado"))
                {
                    this.rdColo.Select();
                }
                else if (muestra.ColorGrano.Equals("Marrón"))
                {
                    this.rdMar.Select();
                }
                else if (muestra.ColorGrano.Equals("Naranja"))
                {
                    this.rdNaranja.Select();
                }

                if (muestra.ColorMarlo.Equals("Blanco"))
                {
                    this.rdMBlan.Select();
                }
                else if (muestra.ColorMarlo.Equals("Rojo"))
                {
                    this.rdRojo.Select();
                }
            }

        }

        void BtnSalirClick(object sender, EventArgs e)
        {
            Dispose();
            Close();
        }

        void BtnGuardarClick(object sender, EventArgs e)
        {

            if (null == cargarMuestra())
            {
                MessageBox.Show("Falta completar datos!!", "Alerta"
                                , MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else
            {
                string claseAnterior = DAOAtributos.obtenerMuestraAtributos(nombreMuestra).Clase; 
                Boolean mModificada = DAOAtributos.ModificarMuestra(cargarMuestra(), nombreMuestra);
                Boolean atributoModificado = DAOAtributos.ModificarMuestraAtributo(cargarMuestra(), cargarMuestra().Nombre);
                if (!cargarMuestra().Clase.Equals(claseAnterior))
                {
                    String rutaActual = DAOAtributos.obtenerRutaImagen(cargarMuestra().Nombre);
                    String ruta = Herramientas.comprobarDirectorioImagenes(cargarMuestra().Clase) + cargarMuestra().Nombre + ".JPG";
                    Boolean imagenModificada = DAOAtributos.modificarImagen(ruta, DAOAtributos.buscarMuestraPorNumero(cargarMuestra().Nombre));
                    string rutaNueva = DAOAtributos.obtenerRutaImagen(cargarMuestra().Nombre);
                    Herramientas.moverArchivo(rutaActual, rutaNueva);

                    if (mModificada & atributoModificado & imagenModificada)
                    {
                        MessageBox.Show("La muestra se modificó con exito!!", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        Close();
                        Dispose();
                    }
                    else
                    {
                        MessageBox.Show("La muestra no se modificó!!", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                }
                else
                {
                    if (mModificada & atributoModificado)
                    {
                        MessageBox.Show("La muestra se modificó con exito!!", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        Close();
                        Dispose();
                    }
                    else
                    {
                        MessageBox.Show("La muestra no se modificó!!", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    }
                }
            }
        }
        Muestra cargarMuestra()
        {
            Boolean verifica = verificarDatos();
           Muestra muestraModificada = new Muestra();
            try
            {
                if (!verifica)
                {

                    muestraModificada.Nombre = txtMuestra.Text;
                    muestraModificada.FechaIngreso = txtFecha.Text;
                    muestraModificada.BatchLote = txtLote.Text;
                    muestraModificada.Observacion = rtbObservaciones.Text;
                    muestraModificada.FueraDeTipo = Convert.ToInt32(cmbFueraTipo.Text);
                    muestraModificada.DanioBiologico = Convert.ToInt32(cmbDanio.Text);
                    muestraModificada.GranoPOP = Convert.ToInt32(cmbPOP.Text);

                    if (rdFundadora.Checked)
                    {
                        muestraModificada.Clase = "Fundadoras";
                    }
                    else if (rdProduccion.Checked)
                    {
                        muestraModificada.Clase = "Producción";
                    }
                    else if (rdRegulado.Checked)
                    {
                        muestraModificada.Clase = "Regulado";
                    }
                    else if (rdSorgo.Checked)
                    {
                        muestraModificada.Clase = "Sorgo";
                    }
                    else if (rdPiloto.Checked)
                    {
                        muestraModificada.Clase = "Piloto";
                    }

                    if (rdGBlan.Checked)
                    {
                        muestraModificada.ColorGrano = "Blanco";
                    }
                    else if (rdAma.Checked)
                    {
                        muestraModificada.ColorGrano = "Amarillo";
                    }
                    else if (rdColo.Checked)
                    {
                        muestraModificada.ColorGrano = "Colorado";
                    }
                    else if (rdMar.Checked)
                    {
                        muestraModificada.ColorGrano = "Marrón";
                    }
                    else if (rdNaranja.Checked)
                    {
                        muestraModificada.ColorGrano = "Naranja";
                    }


                    if (rdMBlan.Checked)
                    {
                        muestraModificada.ColorMarlo = "Blanco";
                    }
                    else if (rdRojo.Checked)
                    {
                        muestraModificada.ColorMarlo = "Rojo";
                    }

                }
                else
                {
                    muestraModificada = null;
                }
            }
            catch (Exception ex)
            {
                EscribirLog.escribirArchivo(ex.Message);
                MessageBox.Show("La muestra no se modificó!!", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            return muestraModificada;
        }

        Boolean verificarDatos()
        {
            Boolean verifica = false;
            foreach (Control ctrl in this.Controls)
            {
                if (ctrl is GroupBox)
                {

                    foreach (Control c in ctrl.Controls)
                    {
                        if (c is TextBox)
                        {
                            if (c.Text.Trim().Equals(""))
                            {
                                verifica = true;
                            }
                        }
                        else if (c is ComboBox)
                        {

                            if (c.Text.Trim().Equals(""))
                            {
                                verifica = true;
                            }
                        }
                    }
                }

            }

            return verifica;
        }

        void BtnGuardarMouseHover(object sender, EventArgs e)
        {
            ToolTip ver = new ToolTip();
            ver.SetToolTip(btnGuardar, "Guardar");
        }

        private void calendario_DateChanged(object sender, DateRangeEventArgs e)
        {
            this.txtFecha.Text = this.calendario.SelectionRange.Start.ToShortDateString();
        }

    }
}
